package com.talkweb.securitycamera.cameraInterface;

import com.talkweb.securitycamera.common.interfaces.dataprocess.IFileGet;
import ohos.agp.graphics.Surface;
import ohos.media.camera.device.Camera;
import ohos.media.image.common.Size;

import java.io.File;

/**
 * @version 1.0.1
 * @description:相机功能模块接口
 * @program: security-camera
 * @Author xiaozhijun
 * @Date 2021/3/03 10:14
 */
public interface ICameraModule {

    /**
     * 获取surface
     *
     * @return
     */
    public Surface getSurface();

    /**
     * 开始
     * @param camera
     * @param presurface
     */
    public void start(Camera camera, Surface presurface);

    /**
     * 停止
     * @param camera
     */
    public void stop(Camera camera);

    /**
     * 改变帧模板配置
     * @param camera
     */
    public void changeFrameConfig(Camera camera);

    /**
     * 获取缓存文件
     * @return
     */
    public File getFile();

    /**
     * 初始化
     *
     * @param properSize 相机预览尺寸
     * @param fileGet    获取缓存文件
     */
    public void init(Size properSize, IFileGet fileGet);

    /**
     * 获取相机配置变化回调接口对象
     * @return
     */
    public ICameraConfigChangeCallback getConfigChangeCallback();

}
